@@ -12,8 +12,8 @@ from utils.redis.rshot import update_member_shot_data  | 
            ||
| 12 | 12 | 
                 | 
            
| 13 | 13 | 
                 | 
            
| 14 | 14 | 
                class GoodsInfoAdmin(admin.ModelAdmin):  | 
            
| 15 | 
                -    list_display = ('good_id', 'good_type', 'title', 'value', 'left_num', 'coupon_id', 'image', 'is_slider', 'slider_image', 'integral', 'fee', 'minlevel', 'only_for_member', 'only_once', 'position', 'status', 'created_at', 'updated_at')
               | 
            |
| 16 | 
                -    list_filter = ('good_type', 'is_slider', 'only_for_member', 'only_once', 'status')
               | 
            |
| 15 | 
                +    list_display = ('good_id', 'good_type', 'title', 'value', 'left_num', 'coupon_id', 'image', 'is_slider', 'slider_image', 'integral', 'fee', 'minlevel', 'only_for_member', 'only_once', 'position', 'is_upload_qiniu', 'status', 'created_at', 'updated_at')
               | 
            |
| 16 | 
                +    list_filter = ('good_type', 'is_slider', 'only_for_member', 'only_once', 'is_upload_qiniu', 'status')
               | 
            |
| 17 | 17 | 
                 | 
            
| 18 | 18 | 
                 | 
            
| 19 | 19 | 
                class GoodsOrderInfoAdmin(admin.ModelAdmin):  | 
            
                @@ -76,8 +76,8 @@ class ShotTypeInfoAdmin(DeleteModelAdmin, admin.ModelAdmin):  | 
            ||
| 76 | 76 | 
                 | 
            
| 77 | 77 | 
                 | 
            
| 78 | 78 | 
                class MemberActivityInfoAdmin(admin.ModelAdmin):  | 
            
| 79 | 
                -    list_display = ('activity_id', 'title', 'subtitle', 'date', 'city', 'location', 'lat', 'lon', 'image', 'is_slider', 'slider_image', 'position', 'status', 'created_at', 'updated_at')
               | 
            |
| 80 | 
                -    list_filter = ('is_slider', 'status')
               | 
            |
| 79 | 
                +    list_display = ('activity_id', 'title', 'subtitle', 'date', 'city', 'location', 'lat', 'lon', 'image', 'is_slider', 'slider_image', 'position', 'is_upload_qiniu', 'status', 'created_at', 'updated_at')
               | 
            |
| 80 | 
                +    list_filter = ('is_slider', 'is_upload_qiniu', 'status')
               | 
            |
| 81 | 81 | 
                 | 
            
| 82 | 82 | 
                 | 
            
| 83 | 83 | 
                class MemberActivitySignupInfoAdmin(admin.ModelAdmin):  | 
            
                @@ -0,0 +1,25 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +# Generated by Django 1.11.29 on 2021-11-24 10:50  | 
            |
| 3 | 
                +from __future__ import unicode_literals  | 
            |
| 4 | 
                +  | 
            |
| 5 | 
                +from django.db import migrations, models  | 
            |
| 6 | 
                +  | 
            |
| 7 | 
                +  | 
            |
| 8 | 
                +class Migration(migrations.Migration):  | 
            |
| 9 | 
                +  | 
            |
| 10 | 
                + dependencies = [  | 
            |
| 11 | 
                +        ('member', '0030_rightinfo_is_continue_send_coupon'),
               | 
            |
| 12 | 
                + ]  | 
            |
| 13 | 
                +  | 
            |
| 14 | 
                + operations = [  | 
            |
| 15 | 
                + migrations.AddField(  | 
            |
| 16 | 
                + model_name='goodsinfo',  | 
            |
| 17 | 
                + name='is_upload_qiniu',  | 
            |
| 18 | 
                + field=models.BooleanField(default=False, help_text='\u662f\u5426\u5df2\u4e0a\u4f20\u4e03\u725b', verbose_name='is_upload_qiniu'),  | 
            |
| 19 | 
                + ),  | 
            |
| 20 | 
                + migrations.AddField(  | 
            |
| 21 | 
                + model_name='memberactivityinfo',  | 
            |
| 22 | 
                + name='is_upload_qiniu',  | 
            |
| 23 | 
                + field=models.BooleanField(default=False, help_text='\u662f\u5426\u5df2\u4e0a\u4f20\u4e03\u725b', verbose_name='is_upload_qiniu'),  | 
            |
| 24 | 
                + ),  | 
            |
| 25 | 
                + ]  | 
            
                @@ -12,6 +12,7 @@ from TimeConvert import TimeConvert as tc  | 
            ||
| 12 | 12 | 
                from coupon.models import CouponInfo  | 
            
| 13 | 13 | 
                from mch.models import ModelInfo  | 
            
| 14 | 14 | 
                from simditor.fields import RichTextField  | 
            
| 15 | 
                +from utils.qiniucdn import qiniu_file_url  | 
            |
| 15 | 16 | 
                 | 
            
| 16 | 17 | 
                 | 
            
| 17 | 18 | 
                class GoodsInfo(BaseModelMixin):  | 
            
                @@ -51,6 +52,8 @@ class GoodsInfo(BaseModelMixin):  | 
            ||
| 51 | 52 | 
                 | 
            
| 52 | 53 | 
                position = models.IntegerField(_(u'position'), default=1, help_text=u'排序', db_index=True)  | 
            
| 53 | 54 | 
                 | 
            
| 55 | 
                + is_upload_qiniu = models.BooleanField(_(u'is_upload_qiniu'), default=False, help_text=_(u'是否已上传七牛'))  | 
            |
| 56 | 
                +  | 
            |
| 54 | 57 | 
                class Meta:  | 
            
| 55 | 58 | 
                verbose_name = _(u'会员商品信息')  | 
            
| 56 | 59 | 
                verbose_name_plural = _(u'会员商品信息')  | 
            
                @@ -64,7 +67,7 @@ class GoodsInfo(BaseModelMixin):  | 
            ||
| 64 | 67 | 
                 | 
            
| 65 | 68 | 
                @property  | 
            
| 66 | 69 | 
                def image_url(self):  | 
            
| 67 | 
                - return upload_file_url(self.image)  | 
            |
| 70 | 
                + return qiniu_file_url(self.image.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.image)  | 
            |
| 68 | 71 | 
                 | 
            
| 69 | 72 | 
                @property  | 
            
| 70 | 73 | 
                def slider_image_path(self):  | 
            
                @@ -72,7 +75,7 @@ class GoodsInfo(BaseModelMixin):  | 
            ||
| 72 | 75 | 
                 | 
            
| 73 | 76 | 
                @property  | 
            
| 74 | 77 | 
                def slider_image_url(self):  | 
            
| 75 | 
                - return upload_file_url(self.slider_image)  | 
            |
| 78 | 
                + return qiniu_file_url(self.slider_image.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.slider_image)  | 
            |
| 76 | 79 | 
                 | 
            
| 77 | 80 | 
                def has_member_exchange(self, user_id=None):  | 
            
| 78 | 81 | 
                if not self.only_for_member:  | 
            
                @@ -380,6 +383,8 @@ class MemberActivityInfo(BaseModelMixin):  | 
            ||
| 380 | 383 | 
                 | 
            
| 381 | 384 | 
                position = models.IntegerField(_(u'position'), default=1, help_text=u'排序', db_index=True)  | 
            
| 382 | 385 | 
                 | 
            
| 386 | 
                + is_upload_qiniu = models.BooleanField(_(u'is_upload_qiniu'), default=False, help_text=_(u'是否已上传七牛'))  | 
            |
| 387 | 
                +  | 
            |
| 383 | 388 | 
                class Meta:  | 
            
| 384 | 389 | 
                verbose_name = _(u'会员活动信息')  | 
            
| 385 | 390 | 
                verbose_name_plural = _(u'会员活动信息')  | 
            
                @@ -393,7 +398,7 @@ class MemberActivityInfo(BaseModelMixin):  | 
            ||
| 393 | 398 | 
                 | 
            
| 394 | 399 | 
                @property  | 
            
| 395 | 400 | 
                def image_url(self):  | 
            
| 396 | 
                - return upload_file_url(self.image)  | 
            |
| 401 | 
                + return qiniu_file_url(self.image.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.image)  | 
            |
| 397 | 402 | 
                 | 
            
| 398 | 403 | 
                @property  | 
            
| 399 | 404 | 
                def cover_path(self):  | 
            
                @@ -401,7 +406,7 @@ class MemberActivityInfo(BaseModelMixin):  | 
            ||
| 401 | 406 | 
                 | 
            
| 402 | 407 | 
                @property  | 
            
| 403 | 408 | 
                def cover_url(self):  | 
            
| 404 | 
                - return upload_file_url(self.cover)  | 
            |
| 409 | 
                + return qiniu_file_url(self.cover.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.cover)  | 
            |
| 405 | 410 | 
                 | 
            
| 406 | 411 | 
                @property  | 
            
| 407 | 412 | 
                def slider_image_path(self):  | 
            
                @@ -409,7 +414,7 @@ class MemberActivityInfo(BaseModelMixin):  | 
            ||
| 409 | 414 | 
                 | 
            
| 410 | 415 | 
                @property  | 
            
| 411 | 416 | 
                def slider_image_url(self):  | 
            
| 412 | 
                - return upload_file_url(self.slider_image)  | 
            |
| 417 | 
                + return qiniu_file_url(self.slider_image.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.slider_image)  | 
            |
| 413 | 418 | 
                 | 
            
| 414 | 419 | 
                @property  | 
            
| 415 | 420 | 
                def final_state(self):  |